package com.ctshk.rpc.cms.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.cms.dto.ContentClassificationDTO;
import com.ctshk.rpc.cms.dto.ContentClassificationListDTO;
import com.ctshk.rpc.cms.req.*;

import java.util.List;

/**
 * <p>
 * 内容分类 服务类
 * </p>
 *
 * @author LiZhiming
 * @since 2021-04-23
 */
public interface IContentClassificationService{
    /**
     * 新增文章分类
     *
     * @param req
     * @return
     */
    Result add(ContentClassificationAddReq req, TokenUser tu);

    /**
     * 查询文章分类作为下拉列表
     *
     * @return
     */
    Result<List<ContentClassificationDTO>> getSelectList();

    /**
     * 查询文章分类作为下拉列表2
     *
     * @return
     */
    Result<PageResponse<ContentClassificationDTO>> getSelectList2(SelectAllQueryReq req);

    /**
     * 查询文章分类列表
     * @param req
     * @return
     */
    PageResponse<ContentClassificationListDTO> getList(ContentClassificationQueryReq req);

    /**
     * 查询文章分类的所有子分类
     * @param patentId
     * @return
     */
    Result<ContentClassificationDTO> getChild(Long patentId);

    /**
     * 查询文章分类
     * @param id
     * @return
     */
    Result<ContentClassificationListDTO> getContentClassificationById(Long id);

    /**
     * 查询文章分类
     * @param code
     * @return
     */
    Result<ContentClassificationListDTO> getContentClassificationByCode(String code);

    /**
     * 修改文章分类
     * @param req
     * @return
     */
    Result update(ContentClassificationUpdateReq req, TokenUser tu);

    /**
     * 修改有效状态
     * @param req
     * @return
     */
    Result updateStatusById(UpdateStatusReq req);
}
